package com.cw.mapper2;

import com.baomidou.mybatisplus.core.mapper.*;
import com.cw.dto.InpatientRegistrationCondition;
import com.cw.entity.*;
import com.cw.request.BedUggieRequest;
import com.cw.request.PrintHospitalCertificateRequest;
import com.cw.vo.spdVO;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * <p>
 * II_住院主表 Mapper 接口
 * </p>
 *
 * @author smq
 * @since 2021-05-05
 */
@Repository
public interface ThisIiInmaininfoMapper extends BaseMapper<ThisIiInmaininfo> {

    /**
     * 住院登记记录=已登记
     * @param condition 查询条件
     * @author ly
     * @date 2021/5/6 14:25
     * @return java.util.List<com.cw.entity.ThisIiInmaininfo>
     */
    List<ThisIiInmaininfo> getThisIiInmaininfos(InpatientRegistrationCondition condition);

    List<ThisIiPrepayin> getPrintHospitalCertificate(PrintHospitalCertificateRequest print);

    /**
     * 入院列表
     * <h3>只查询本系统录入的数据<h3/>
     * @param condition 查询条件
     * @author ly
     * @date 2021/07/14 14:38
     * @return java.util.List<com.cw.entity.ThisIiInmaininfo>
     */
    List<ThisIiInmaininfo> getHospitalized(InpatientRegistrationCondition condition);


    /**
     * 出院列表
     * <h3>只查询本系统录入的数据<h3/>
     * @param condition 查询条件
     * @return com.github.pagehelper<com.cw.entity.ThisIiInmaininfo>
     * @author ly
     * @date 2021/07/14 15:40
     */
    List<ThisIiInmaininfo> getLeaveHospital(InpatientRegistrationCondition condition);

    /**
     * 获取在床人员信息
     * <h3>只查询本系统录入的数据<h3/>
     * @param bedList 查询条件
     * @return com.github.pagehelper<com.cw.entity.ThisIiInmaininfo>
     * @author cww
     * @date 2021/08/02
     */
    List<spdVO> getInBedInfo(List<String> bedList);

    List<spdVO> getSPDInBedInfo(spdVO spdInfo);

    List<spdVO> determineSPD(String nurseCellCode, String roomNo );

    /**
     * @author xnd
     * @since 2021-10-28
     * 床位异动验证，是不是转病区的患者
     */
    List<BedUggIeCWInfo>  getBedUggIeCW(BedUggieRequest UggIeList);

    /**
     * 预约了,但没有住院的那些人
     * xnd
     * 2021-12-21
     */
    List<BedUggIeCWInfo>  getAppointmentNotHospitalized(BedUggieRequest UggIeList);


    /**
     * 根据住院号ZY****获取患者床位的医疗组组长信息
     * @param inpatientNoList
     * @return
     */
    List<HisCwglBed> listYlzzNameList(List<String> inpatientNoList);
}
